package net.wofly.right.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 用户表
 * @author lign
 * @version 1.0
 * @updated 05-十二月-2017 19:58:48
 */
@Data
@Entity
@Table(name = "sale_v_right_customer")
public class Customer {

	/**
	 * 用户ID
	 */
	@Id
	private String userID;
	/**
	 * 用户名
	 */
	@ApiModelProperty(value = "用户名", required = false)
	private String userName;
	/**
	 * 手机号    长度：20
	 */
	@ApiModelProperty(value = "手机号", required = true)
	private String mobile;
	/**
	 * 邮箱   长度：50
	 */
	@ApiModelProperty(value = "邮箱", required = false)
	private String email;
	/**
	 * 姓名/备注名   长度：50
	 */
	@ApiModelProperty(value = "用户姓名", required = false)
	private String name;

	/**
	 * 姓名/备注名   长度：50
	 */
	@ApiModelProperty(value = "用户姓名拼音首字母", required = false)
	private String namePinYin;
	/**
	 * 性别
	 */
	@ApiModelProperty(value = "性别", required = false)
	private Integer sex;
	/**
	 * 出生年月
	 */
	@ApiModelProperty(value = "出生年月", required = false)
	private Long birthday;

	/**
	 * 用户注册途径
	 * <ol>
	 * 	<li>通过手机号、邮箱、qq、微信等途径注册</li>
	 * 	<li>默认为手机号</li>
	 * 	<li></li>
	 * </ol>
	 */
	@ApiModelProperty(value = "注册途径", required = true)
	private Integer RegisterWay;
	/**
	 * 头像
	 *
	 * 长度：200
	 */
	@ApiModelProperty(value = "头像", required = false)
	private String pic1;
	/**
	 * 头像
	 *
	 *
	 * 长度：200
	 */
	@ApiModelProperty(value = "头像", required = false)
	private String pic2;
	/**
	 * 注册时间
	 * <ul>
	 * 	<li>验证通过后，写入用户信息时的时间</li>
	 * </ul>
	 */
	@ApiModelProperty(value = "注册时间", required = false)
	private Long registerTime;
	/**
	 * 注册类型
	 * <ol>
	 * 	<li>用户是自助注册还是代注册</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "注册类型", required = true)
	private Integer registerType;
	private Long modifyDate;
	/**
	 * 客户跟踪员工ID
	 * <ol>
	 * 	<li>如果是客户，此客户的负责跟踪的销售用户ID</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "客户用户的销售跟踪的UserID", required = false)
	private String followUserID;
	/**
	 * 是否有仓库标志
	 * 1:有；0:没有
	 */
	@ApiModelProperty(value = "用户是否有仓库的标识", required = false)
	private Integer warehouseFlag = 0;
	/**
	 * 仓库类型
	 * <ol>
	 * 	<li>公司总仓库=1 ； 部门仓库=2 ；个人仓库=3</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "用户的仓库类型", required = false)
	private Integer warehouseType;
	/**
	 * 仓库ID
	 */
	@ApiModelProperty(value = "用户的仓库ID", required = false)
	private String warehouseID;

	/**
	 * 是否是法人用户
	 * 1 为是 0 为否
	 * 法人用户ID与所在企业组织机构ID相同
	 *
	 */
	@ApiModelProperty(value = "是否是法人用户", required = true)
	private Integer isLegal = 0 ;

	/**
	 * 用户类型
	 * 0 为内部员工 1为个人用户 2 为企业用户
	 * 法人用户ID与所在企业组织机构ID相同
	 *
	 */
	@ApiModelProperty(value = "用户类型", required = true)
	private Integer userType = 1 ;


	/**
	 * 客户类型
	 * 1为个人客户
	 * 2为单位客户
	 *
	 */
	@ApiModelProperty(value = "客户类型", required = true)
	private Integer customType = 1 ;


	private String organizationID;

	/**
	 * 组织机构编码  长度：50
	 */
	@ApiModelProperty(value = "组织机构编码", required = true)
	private String organizationCode ;
	/**
	 * 组织机构名称  长度：50
	 */
	@ApiModelProperty(value = "组织机构名称", required = true)
	private String organizationName;

	private String organizationNamePinYin;

	/**
	 * 组织机构类型
	 * <ol>
	 * 	<li>构想是在不同项目实施时，根据实际情况来设置类型。可以据此来扩展更多的功能</li>
	 * 	<li></li>
	 * </ol>
	 */
	@ApiModelProperty(value = "组织机构类型", required = true)
	private String organizationType;

	@ApiModelProperty(value = "送货地址", required = true)
	private String addr;

	/**
	 * 联系人
	 * <ol>
	 * 	<li>组织机构联系人，对于客户来说，默认会把联系人做为客户下的一个用户来处理</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "联系人", required = false)
	private String linkman;
	/**
	 * 联系人手机号
	 * <ol>
	 * 	<li>联系人手机号</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "联系人手机号", required = false)
	private String linkMobile;
	
	/**
	 * 收货地址Id
	 * <ol>
	 * 	<li>收货地址Id</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "收货地址Id", required = false)
	private String receivingAddrID;
	
	/**
	 * 收货联系人
	 * <ol>
	 * 	<li>收货联系人</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "收货联系人", required = false)
	private String contacts;
	
	/**
	 * 收货联系人电话
	 * <ol>
	 * 	<li>收货联系人电话</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "收货联系人电话", required = false)
	private String contactsMobile;
	
	/**
	 * 收货地址
	 * <ol>
	 * 	<li>收货地址</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "收货地址", required = false)
	private String receivingAddr;
	
	/**
	 * 客户名称
	 * <ol>
	 * 	<li>客户名称</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "客户名称", required = false)
	private String customerName;
	
	/**
	 * 客户名称拼音
	 * <ol>
	 * 	<li>客户名称拼音</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "客户名称拼音", required = false)
	private String customerNamePinYin;
	
	/**
	 * 客户状态
	 * <ol>
	 * 	<li>客户状态</li>
	 * </ol>
	 */
	@ApiModelProperty(value = "客户状态", required = false)
	private String status;
	
	public Customer(){

	}
}